package thread;

/**
 * sleep方法要求必须处理中断异常
 *
 * 当一个线程调用sleep处于睡眠阻塞的过程中，如果该线程的interrupt方法被调用，那么该线程的
 * 睡眠阻塞会立即被中断，此时该方法会抛出中断异常
 */
public class SleepDemo2 {
    public static void main(String[] args) {
        Thread lin = new Thread("林永健"){
            public void run(){
                String name = getName();//获取线程名字
                System.out.println(name+":刚美完容，睡一会吧。。。");
                try {
                    Thread.sleep(500000000);
                } catch (InterruptedException e) {
                    System.out.println(name+":干嘛呢！干嘛呢！干嘛呢！都破了相了！");
                }
                System.out.println(name+":醒了");
            }
        };

        Thread huang = new Thread("黄宏"){
            public void run(){
                System.out.println(getName()+":大锤80！小锤40！开始砸墙！");
                for (int i = 0; i < 5; i++) {
                    System.out.println(getName()+":80！");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("咣当！");
                System.out.println(getName()+":大哥，搞定!");
                lin.interrupt();//中断方法会中断lin线程的睡眠阻塞
            }
        };
        lin.start();
        huang.start();
    }
}









